/**
 * utils/idGenerator.js
 * 任务ID与标题生成工具
 */

const crypto = require('crypto');

/**
 * 生成唯一任务ID
 * @returns {string} e.g., task_1700000000000_ab12cd34
 */
function generateTaskId() {
  return 'task_' + Date.now() + '_' + crypto.randomBytes(4).toString('hex');
}

/**
 * 根据内容生成任务标题
 * - 自动带有时间标识
 * - 当内容太短时使用内容本身，否则使用默认标题
 * @param {string} content - 用户提供的内容
 * @returns {string}
 */
function generateTaskTitle(content) {
  const now = new Date();
  const timeString =
    String(now.getFullYear()).slice(-2) +
    String(now.getMonth() + 1).padStart(2, '0') +
    String(now.getDate()).padStart(2, '0') +
    String(now.getHours() + 8).padStart(2, '0') +
    String(now.getMinutes()).padStart(2, '0');

  const defaultTitle = `爱尔${timeString}`;

  if (!content || !content.trim()) {
    return defaultTitle;
  }

  const clean = content.trim();
  return clean.length <= 8 ? clean : defaultTitle;
}

module.exports = {
  generateTaskId,
  generateTaskTitle
};
